package com.gidgabs.dto;


import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * <p>
 * 用户
 * </p>
 *
 * @author theodo
 * @since 2017-10-28
 */
@ApiModel("用户数据")
public class TbUserDto  {

	private static final long serialVersionUID = 1L;

	private Integer userId;
	@ApiModelProperty("用户编码")
	private String userCode;
	//昵称
	@ApiModelProperty("用户名称")
	private String userName;
	//电话
	@ApiModelProperty("用户手机号码")
	private String mobile;
	//登录密码
	private String password;
	//支付密码
	private String paypassword;
	//银行卡表编码
	@ApiModelProperty("银行卡表编码")
	private String bankCardCode;
	//用户账号状态0:未删除，1:已删除
	private Integer deleteType;
	//创建时间/可以判断是否是新用户
	@ApiModelProperty("创建时间/可以判断是否是新用户")
	//@JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	private Date createTime;
	@ApiModelProperty("账号类型 1 公司 2 个人 默认个人")
	//账号类型 1 公司 2 个人 默认个人
	private Integer chooseType;
	@ApiModelProperty("性别 1 男 2 女")
	//性别 1 男 2 女
	private Integer gender;
	@ApiModelProperty("签名")
	//签名
	private String autograph;
	@ApiModelProperty("出生日期")
	//出生日期
	//@JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date birth;
	@ApiModelProperty("职业")
	//职业
	private String occupation;
	@ApiModelProperty("头像地址/也是公司logo")
	//头像地址/也是公司logo
	private String headImgUrl;
	@ApiModelProperty("背景图 个人中心那张大图")
	//背景图 个人中心那张大图
	private String backgroundImgUrl;
	@ApiModelProperty("跑腿服务是否开启 0 未开启 1 开启")
	//跑腿服务是否开启 0 未开启 1 开启
	private Integer butlerStatus;
	@ApiModelProperty("粉丝数量")
	private Integer fansCount;
	@ApiModelProperty("最近一条发布的日志的id")
	private Integer lastLinkId;
	@ApiModelProperty("最近一条发布的日志的封面图片")
	private String lastLinkImg;
	@ApiModelProperty("关注数量")
	private Integer followCount;
	@ApiModelProperty("转载数量")
	private Integer forwardCount;
	@ApiModelProperty("token")
	private String token;
	@ApiModelProperty("环信密码")
	private String huanxinPwd;
	@ApiModelProperty("日志赏金")
	private Integer reward;
	@ApiModelProperty("日志数量")
	private Integer journalNum;
	@ApiModelProperty("云信Token")
	private String yunXinToken;

	public Integer getUserId() {
		return userId;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	/**
	 * 设置：用户编码
	 */
	public void setUserCode(String userCode) {
		this.userCode = userCode;
	}
	/**
	 * 获取：用户编码
	 */
	public String getUserCode() {
		return userCode;
	}
	/**
	 * 设置：昵称
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}
	/**
	 * 获取：昵称
	 */
	public String getUserName() {
		return userName;
	}
	/**
	 * 设置：电话
	 */
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	/**
	 * 获取：电话
	 */
	public String getMobile() {
		return mobile;
	}

	public String getToken() {
		return token;
	}

	public Integer getReward() {
		return reward;
	}

	public void setReward(Integer reward) {
		this.reward = reward;
	}

	public Integer getJournalNum() {
		return journalNum;
	}

	public void setJournalNum(Integer journalNum) {
		this.journalNum = journalNum;
	}

	public String getYunXinToken() {
		return yunXinToken;
	}

	public void setYunXinToken(String yunXinToken) {
		this.yunXinToken = yunXinToken;
	}

	/**
	 * 环信用户登录密码
	 * @return
	 */
	public String getHuanxinPwd() {
		if (huanxinPwd==null){
			huanxinPwd= DigestUtils.sha256Hex(String.valueOf(userId));
		}
		return huanxinPwd;
	}

	public void setHuanxinPwd(String huanxinPwd) {
		this.huanxinPwd = huanxinPwd;
	}

	public void setToken(String token) {
		this.token = token;
	}

	/**
	 * 设置：登录密码
	 */
	public void setPassword(String password) {
		this.password = password;
	}
	/**
	 * 获取：登录密码
	 */
	public String getPassword() {
		return password;
	}

	public Integer getFansCount() {
		return fansCount;
	}

	public void setFansCount(Integer fansCount) {
		this.fansCount = fansCount;
	}

	public Integer getFollowCount() {
		return followCount;
	}

	public void setFollowCount(Integer followCount) {
		this.followCount = followCount;
	}

	public Integer getForwardCount() {
		return forwardCount;
	}

	public void setForwardCount(Integer forwardCount) {
		this.forwardCount = forwardCount;
	}

	/**
	 * 设置：支付密码
	 */
	public void setPaypassword(String paypassword) {
		this.paypassword = paypassword;
	}
	/**
	 * 获取：支付密码
	 */
	public String getPaypassword() {
		return paypassword;
	}

	public String getBankCardCode() {
		return bankCardCode;
	}

	public void setBankCardCode(String bankCardCode) {
		this.bankCardCode = bankCardCode;
	}
	/**
	 * 设置：用户账号状态0:未删除，1:已删除
	 */
	public void setDeleteType(Integer deleteType) {
		this.deleteType = deleteType;
	}
	/**
	 * 获取：用户账号状态0:未删除，1:已删除
	 */
	public Integer getDeleteType() {
		return deleteType;
	}
	/**
	 * 设置：创建时间/可以判断是否是新用户
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	/**
	 * 获取：创建时间/可以判断是否是新用户
	 */
	public Date getCreateTime() {
		return createTime;
	}
	/**
	 * 设置：账号类型 1 公司 2 个人 默认个人
	 */
	public void setChooseType(Integer chooseType) {
		this.chooseType = chooseType;
	}
	/**
	 * 获取：账号类型 1 公司 2 个人 默认个人
	 */
	public Integer getChooseType() {
		return chooseType;
	}
	/**
	 * 设置：性别 1 男 2 女
	 */
	public void setGender(Integer gender) {
		this.gender = gender;
	}
	/**
	 * 获取：性别 1 男 2 女
	 */
	public Integer getGender() {
		return gender;
	}
	/**
	 * 设置：签名
	 */
	public void setAutograph(String autograph) {
		this.autograph = autograph;
	}
	/**
	 * 获取：签名
	 */
	public String getAutograph() {
		return autograph;
	}
	/**
	 * 设置：出生日期
	 */
	public void setBirth(Date birth) {
		this.birth = birth;
	}
	/**
	 * 获取：出生日期
	 */
	public Date getBirth() {
		return birth;
	}
	/**
	 * 设置：职业
	 */
	public void setOccupation(String occupation) {
		this.occupation = occupation;
	}
	/**
	 * 获取：职业
	 */
	public String getOccupation() {
		return occupation;
	}
	/**
	 * 设置：头像地址/也是公司logo
	 */
	public void setHeadImgUrl(String headImgUrl) {
		this.headImgUrl = headImgUrl;
	}
	/**
	 * 获取：头像地址/也是公司logo
	 */
	public String getHeadImgUrl() {
		return headImgUrl;
	}
	/**
	 * 设置：背景图 个人中心那张大图
	 */
	public void setBackgroundImgUrl(String backgroundImgUrl) {
		this.backgroundImgUrl = backgroundImgUrl;
	}
	/**
	 * 获取：背景图 个人中心那张大图
	 */
	public String getBackgroundImgUrl() {
		return backgroundImgUrl;
	}
	/**
	 * 设置：跑腿服务是否开启 0 未开启 1 开启
	 */
	public void setButlerStatus(Integer butlerStatus) {
		this.butlerStatus = butlerStatus;
	}
	/**
	 * 获取：跑腿服务是否开启 0 未开启 1 开启
	 */
	public Integer getButlerStatus() {
		return butlerStatus;
	}

	public Integer getLastLinkId() {
		return lastLinkId;
	}

	public void setLastLinkId(Integer lastLinkId) {
		this.lastLinkId = lastLinkId;
	}

	public String getLastLinkImg() {
		return lastLinkImg;
	}

	public void setLastLinkImg(String lastLinkImg) {
		this.lastLinkImg = lastLinkImg;
	}
}
